#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<cstdio>
#include<algorithm>
#define debug(a) cout<<#a<<"="<<a<<endl;
using namespace std;
const int maxn=200;
typedef int LL;
LL a[maxn][maxn];
inline LL read()
{
	LL x=0,f=1;char ch=getchar();
	while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
	while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
int main(void)
{
  cin.tie(0);std::ios::sync_with_stdio(false);
  LL n,s,k;n=read();s=read();k=read();
  for(LL i=1;i<=n;i++){
    for(LL j=1;j<=n;j++){
        a[i][j]=read();
    }
  }
  while(k--){
    LL x,y;x=read();y=read();
    LL minv=1e18;LL manv=-1e18;
    for(LL i=x;i<=x+s-1;i++){
        for(LL j=y;j<=y+s-1;j++){
            minv=min(minv,a[i][j]);
            manv=max(manv,a[i][j]);
        }
    }
    cout<<manv-minv<<endl;
  }
return 0;
}
